创建一个用户
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
超级管理员"root"
用户的权限非常大,我们不应该使用这个用户对数据库进行日常的操作,为此我们新建一个权限较低的"myuser"
用户,现在我们使用"root"
用户来创建他。
-- 启动客户端程序
> mysql -u root -p
-- 创建一个可以从本机登录的'myuser'用户,密码设置为'xxxx'
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'xxxx';
Query OK (0.01 sec)
-- 授予"myuser"用户权限
mysql> GRANT ALL ON *.* TO 'myuser'@'localhost';
Query OK (0.01 sec)
-- 查询系统中的所有用户和密码
mysql> SELECT host, user, password FROM mysql.user;
+-----------+--------+-------------------------------------------+
| host | user | password |
+-----------+--------+-------------------------------------------+
| localhost | root | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| 127.0.0.1 | root | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| ::1 | root | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| localhost | myuser | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+-----------+--------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql> quit
解释说明
这里我们使用"CREATE USER"
命令创建一个本地用户'myuser'@'localhost',密码设置为'xxxx',该用户只能够从本机(与数据库软件在同一台设备上)进行登录。
用户创建完后还不能执行任何数据库操作,即便是SELECT语句也不可以。这时我们就需要使用GRANT语句授予该用户相应的权限(如:SELECT, INSERT, DELETE等),而授予的对象则是所有数据库和所有表(ON .),这样新创建的用户除了不能对其他用户授予权限外,他的权限与"root"用户相同。对于生产环境而言我们需要授予指定的权限,而不是简单的授予所有权限,例如:"GRANT SELECT, INSERT, UPDATE ON studentdb.*" – 这样"myuser"用户可以对studentdb数据库下的表执行SELECT, INSERT和UPDATED操作,但是不能够删除和创建表(CREATE TABLE / DROP TABLE)。
在线练习
{$ activeFileHint $}